package org.vgou.service;

import java.util.List;

import org.vgou.model.Location;

/**
 * 
 * Copyright (c) 2011, vgou<br>
 * All rights reserved.<br>
 * 
 * @since 2011-12-1
 * @author <a href="mailto:jason.hxx@gmail.com">jason</a>
 * @version Id: ILocationService.java
 * @comment 地区服务接口类
 * 
 */
public interface ILocationService {

	/**
	 * 创建地区记录
	 * 
	 * @param location
	 * @param parentID
	 * @return
	 * @throws Exception
	 */
	long create(Location location, long parentID) throws Exception;

	/**
	 * 修改地区记录
	 * 
	 * @param location
	 * @return
	 * @throws Exception
	 */
	int update(Location location) throws Exception;

	/**
	 * 删除地区记录
	 * 
	 * @param id
	 * @return
	 * @throws Exception
	 */
	int del(long id) throws Exception;

	/**
	 * 根据地区ID取得地区记录
	 * 
	 * @param id
	 * @return
	 * @throws Exception
	 */
	Location getById(long id) throws Exception;

	/**
	 * 取得指定条件下的地区数目
	 * 
	 * @param locationName
	 *            地区名称
	 * @param parentID
	 *            父级ID
	 * @return
	 * @throws Exception
	 */
	int getAllCount(String locationName, long parentID) throws Exception;

	/**
	 * 取得指定条件下的地区集合
	 * 
	 * @param locationName
	 *            地区名称
	 * @param parentID
	 *            父级ID            
	 * @param orderBy
	 *            排序属性
	 * @param isAsc
	 *            是否升序
	 * @param startPage
	 *            分页开始索引
	 * @param pageSize
	 *            每页显示数目
	 * @return
	 * @throws Exception
	 */
	List<Location> getAll(String locationName,long parentID, String orderBy,
			boolean isAsc, int startPage, int pageSize) throws Exception;
}
